package com.java.yz.day12.ketang;

/*
Throwable分为Error和Exception
    Exception由分为运行时异常和编译时异常
    1,编译时异常
        除了RuntimeException及其子类,Exception中所有的子类都是,这种异常必须要处理,要不编译通不过
    2,运行时异常
        RuntimeException及其子类都是,这种异常不用处理,编译会通过,不过这样的程序会有安全隐患,
        遇到这种异常是需要改代码的
    3,严重错误问题
        用Error进行描述,这个问题发生后,一般不编写针对代码进行处理,而是要对程序进行修正.
        通常都是由虚拟机抛出的问题

 */
public class ExceptionDemo1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        System.out.println(a/b);
        //Exception in thread "main" java.lang.ArithmeticException: / by zero
        //这时系统就会自动交给JVM报错，就不会执行下面的代码

        /*
        并将对象抛给调用者main函数,new ArithmeticException("/by zero");

        main函数收到这个问题时,有两种处理方式:
        1,自己将该问题处理,然后继续运行
        2,自己没有针对的处理方式,只有交给调用main的jvm来处理
        jvm有一个默认的异常处理机制,就将该异常进行处理.并将该异常的名称,异常的信息.
        异常出现的位置打印在了控制台上,同时将程序停止运行
         */
    }
}
